#ifndef _EQCLIENT_CHANNEL_H
#define _EQCLIENT_CHANNEL_H

#include <eq/channel.h>

#include "../common/objstate.h"

namespace eqClient
{
    class Channel : public eq::Channel
    {
        public:
            Channel(eq::Window* parent);
            
        protected:
            virtual bool configInit(const eq::uint128_t& initID);
            virtual bool configExit();
            
            virtual void frameAssemble(const eq::uint128_t& frameID);
            virtual void frameDraw(const eq::uint128_t& frameID);
            
        private:
            void setupObject();
            void setupLight(unsigned lightID, bool withProjection = false);
            void drawIllum(unsigned lightID);
            void drawModel();
            void finalBlend();
            
            eqCommon::ObjState state;
    };
}

#endif
